package com.atwulidun.builder04;
// 指挥者
public class Director {
    // 聚合具体的建造者
    Builder builder = null;
    // 给builder赋值方式一：通过构造器
//    public Director(Builder builder) {
//        this.builder = builder;
//    }
    // 给builder赋值方式二：通过setter方法
    public void setBuilder(Builder builder) {
        this.builder = builder;
    }

    // 指挥者指挥盖房子的顺序，并返回盖好的房子
    public House build() {
        builder.buildBase();
        builder.buildWall();
        builder.roofed();
        return builder.house;
    }
}
